Ejercicio No. 9

 
     
 

Enunciado

Realizar un diagrama de clases, con los siguientes requisitos, para crear un videojuego:

1. En el videojuego aparecerán: personajes, enemigos, objetos muebles (o móviles) y objetos inmuebles (o inmóviles). (Ejemplos de objetos inmuebles: muros, torres, árboles… Ejemplos de objetos muebles: alimentos, proyectiles, armas…).

2. Todos los elementos anteriores dispondrán de unas coordenadas para ubicarlos.

3. Personajes y enemigos disponen de: nivel de energía, número de vidas y capacidad ofensiva (todos ellos son números).

4. Los personajes (sólo los personajes) pueden recoger hasta tres objetos muebles en una mochila.

5. Las armas son objetos muebles y constan de un nivel de energía y de un factor potenciador de la capacidad ofensiva de los personajes.

 
     
 

Solución

Comenzamos implementando una clase ‘Elemento’ (los atributos van a ser ahora protegidos). Dentro del videojuego habrá: Ente, ObjetoMueble y ObjetoInmueble. Todos ellos son elementos del juego, por lo que están relacionados con la clase ‘Elemento’ mediante herencia.

Personaje y Enemigo son entes del videojuego, por lo están relacionados con la clase Ente mediante herencia.

Los personajes pueden recoger hasta tres objetos muebles, de modo que Personaje y ObjetoMueble están relacionados mediante asociación. Para determinar la cardinalidad de dicha asociación nos preguntamos:

¿Cuántos objetos muebles puede recoger un personaje? De 1 a 3.

¿Cuántos personajes pueden tomar un objeto mueble dado? Un solo personaje.

Un arma es un objeto mueble, por lo tanto la clase Arma hereda de ObjetoMueble.

Implementando todo esto: